Method, apparatus and computer program product for displaying items on multiple floors in multi-level maps

ABSTRACT

Methods, apparatuses and computer program products are provided for displaying search results and other points of interest located on multiple floors or levels in a multi-level map. A method may include receiving an input indicating a search criteria. Further, the method may include determining at least one search result position related to the search criteria, and determining a relationship between the at least one search result position and a multi-level map. In addition, the method may further comprise causing, based at least in part on the relationship, a level of the map and the at least one search result position to be displayed as a search result position indicator, wherein the displayed search result position indicator may be presented in a different manners based at least in part on what level the search result position is located. Corresponding apparatuses and computer program products are also provided.

TECHNOLOGICAL FIELD

Some example embodiments of the present invention relate generally touser interface technology and, more particularly, relate to a method andapparatus for displaying search results and other points of interestlocated on multiple floors or levels in a multi-level map.

BACKGROUND

The modern communications era has brought about a tremendous expansionof wireline and wireless networks. Wireless and mobile networkingtechnologies have addressed related consumer demands, while providingmore flexibility and immediacy of information transfer. Concurrent withthe expansion of networking technologies, an expansion in computingpower has resulted in development of affordable computing devicescapable of taking advantage of services made possible by modernnetworking technologies. This expansion in computing power has led to areduction in the size of computing devices and given rise to a newgeneration of mobile devices that are capable of performingfunctionality that only a few years ago required processing power thatcould be provided only by the most advanced desktop computers.Consequently, mobile computing devices having a small form factor havebecome ubiquitous and are used to access network applications andservices by a number of consumers.

As the evolution of power and affordability of modern computing deviceshas included the release of computing devices capable of providingdigital maps of geographical areas, locations, points of interests,and/or the like, users have increasingly desired that these geographicalareas, locations, points of interest, and/or the like be accuratelydisplayed. Indeed, some computing devices may be capable of displayingpoints of interest, addresses, or other locales, but in a somewhatimprecise manner by providing only an approximate position of thedesired point of interest. For example, a point of interest locatedwithin a multi-level indoor building may be displayed as being locatedrelative to a nearby road rather than at the specific location withinthe building. Further, when a user searches for a store within ashopping mall, the result that may be displayed is not the actual store,but the location of an entrance to the mall. In addition, even thoughshopping malls may include multiple entrances, the search result mayidentify only a single entrance to the mall, such as the main entrance,when a user searches for a store within the mall without considerationof the closest entrance to the store that is the subject of the search.Moreover, a shopping mall may have multiple levels, but the searchresult may not include information regarding which level the store islocated, thereby still requiring the shopper to search for the storeupon arriving at the mall. Other detailed indoor maps that may besimilarly limited in terms of their search functionality may includefloor plans and other detailed information of buildings like shoppingmalls, airports, hospitals, universities, office buildings, and/or thelike.

BRIEF SUMMARY

Methods, apparatuses, and computer program products are herein providedfor displaying search results and other points of interest located onmultiple floors or levels in a multi-level map. The methods,apparatuses, and computer program products of one example embodiment mayprovide a user with a visual representation of search result positionsthat indicate whether the search result position is located on thecurrently displayed level or a different level of the building displayedby the multi-level map. As such, a user may be able to more readilylocate points of interest within a multi-level structure.

In a first example embodiment, a method may include receiving an inputindicating a search criteria. Further, the method may includedetermining, by a processor, at least one search result position relatedto the search criteria, and determining a relationship between the atleast one search result position and a multi-level map. In addition, themethod may further comprise causing, based at least in part on therelationship, a level of the map and the at least one search resultposition to be displayed as a search result position indicator, whereinthe displayed search result position indicator is presented in adifferent manner based at least in part on whether the search resultposition is on the level of the map that is displayed or is on anotherlevel of the map.

According to one example embodiment, the method may further includecausing a two-dimensional map of a portion of a building to bedisplayed. In another embodiment, the method may include receiving aninput indicating a selection of a desired level. Further, anotherexample embodiment may include a method comprising causing the at leastone search result position indicator to be displayed in an instance inwhich the at least one search result position is located within aportion of the map that is displayed. According to another embodiment,the method may include causing the at least one search result positionto be displayed as an opaque search result position indicator in aninstance in which the search result position is on the level of the mapthat is displayed. In addition, the method may include causing the atleast one search result position to be displayed as a translucent searchresult position indicator in an instance in which the search resultposition is not on the level of the map that is displayed. In anotherembodiment, the method may include enabling interaction with the atleast one search result position indicator in an instance in which thesearch result position is on the level of the map that is displayed anddisabling interaction with the at least one search result positionindicator in an instance in which the search result position is not onthe level of the map that is displayed.

In another example embodiment, an apparatus may comprise at least oneprocessor and at least one memory storing computer program code, whereinthe at least one memory and stored computer program code are configured,with the at least one processor, to cause the apparatus to at leastreceive an input indicating a search criteria. In addition, theapparatus may comprise at least one processor and at least one memorystoring computer program code, wherein the at least one memory andstored computer program code are configured, with the at least oneprocessor, to cause the apparatus to determine at least one searchresult position related to the search criteria. According to oneembodiment, the apparatus may comprise at least one processor and atleast one memory storing computer program code, wherein the at least onememory and stored computer program code are configured, with the atleast one processor, to cause the apparatus to determine a relationshipbetween the at least one search result position and a multi-level map.In another embodiment, the apparatus may comprise at least one processorand at least one memory storing computer program code, wherein the atleast one memory and stored computer program code are configured, withthe at least one processor, to cause the apparatus to cause a level ofthe map and at least one search result position to be displayed as asearch result position indicator, wherein the displayed search resultposition indicator is presented in a different manner based at least inpart on whether the search result position is on the level of the mapthat is displayed or is on another level of the map.

In another example embodiment, a computer program product is provided.The computer program product of the example embodiment may include atleast one non-transitory computer-readable storage medium havingcomputer-readable program instructions stored therein. Thecomputer-readable program instructions may comprise program instructionsconfigured to cause an apparatus to perform a method comprisingreceiving an input indicating a search criteria. Further, the method mayinclude determining, by a processor, at least one search result positionrelated to the search criteria. In one embodiment, the method mayinclude determining a relationship between the at least one searchresult position and a multi-level map. In addition the method mayinclude causing, based at least in part on the relationship, a level ofthe map and the at least one search result position to be displayed as asearch result position indicator, wherein the displayed search resultposition indicator is presented in a different manner based at least inpart on whether the search result position is on the level of the mapthat is displayed or is on another level of the map.

In another example embodiment, an apparatus may include means forreceiving an input indicating a search criteria. Further, the apparatusmay include means for determining, by a processor, at least one searchresult position related to the search criteria, and determining arelationship between the at least one search result position and amulti-level map. In addition, the apparatus may further comprise meansfor causing, based at least in part on the relationship, a level of themap and the at least one search result position to be displayed as asearch result position indicator, wherein the displayed search resultposition indicator is presented in a different manner based at least inpart on whether the search result position is on the level of the mapthat is displayed or is on another level of the map.

The above summary is provided merely for purposes of summarizing someexample embodiments of the invention so as to provide a basicunderstanding of some aspects of the invention. Accordingly, it will beappreciated that the above described example embodiments are merelyexamples and should not be construed to narrow the scope or spirit ofthe invention in any way. It will be appreciated that the scope of theinvention encompasses many potential embodiments, some of which will befurther described below, in addition to those here summarized.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 is a schematic block diagram of a mobile terminal according to anexample embodiment of the present invention;

FIG. 2 is a schematic block diagram of an apparatus for displayingsearch results and other points of interest on multiple levels in amulti-level map according to an example embodiment of the presentinvention;

FIG. 3 is a flowchart illustrating operations performed according to anexample embodiment of the present invention;

FIG. 4 illustrates a display detailing search results and other pointsof interest on multiple levels in a multi-level map according to anexample embodiment of the present invention;

FIG. 5 illustrates a display detailing search results and other pointsof interest on multiple levels in a multi-level map according to anexample embodiment of the present invention; and

FIG. 6 is another flowchart illustrating operations performed accordingto an example embodiment of the present invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all embodiments of the invention are shown. Indeed, theinvention may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein; rather, theseembodiments are provided so that this disclosure will satisfy applicablelegal requirements. Like reference numerals refer to like elementsthroughout.

As used herein, the terms “data,” “content,” “information” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received, displayed and/or stored in accordance withvarious example embodiments. Thus, use of any such terms should not betaken to limit the spirit and scope of the disclosure.

The term “computer-readable medium” as used herein refers to any mediumconfigured to participate in providing information to a processor,including instructions for execution. Such a medium may take many forms,including, but not limited to a non-transitory computer-readable storagemedium (e.g., non-volatile media, volatile media), and transmissionmedia. Transmission media include, for example, coaxial cables, copperwire, fiber optic cables, and carrier waves that travel through spacewithout wires or cables, such as acoustic waves and electromagneticwaves, including radio, optical and infrared waves. Signals includeman-made transient variations in amplitude, frequency, phase,polarization or other physical properties transmitted through thetransmission media. Examples of non-transitory computer-readable mediainclude a magnetic computer readable medium (e.g., a floppy disk, harddisk, magnetic tape, any other magnetic medium), an optical computerreadable medium (e.g., a compact disc read only memory (CD-ROM), adigital versatile disc (DVD), a Blu-Ray disc, or the like), a randomaccess memory (RAM), a programmable read only memory (PROM), an erasableprogrammable read only memory (EPROM), a FLASH-EPROM, or any othernon-transitory medium from which a computer can read. The termcomputer-readable storage medium is used herein to refer to anycomputer-readable medium except transmission media. However, it will beappreciated that where embodiments are described to use acomputer-readable storage medium, other types of computer-readablemediums may be substituted for or used in addition to thecomputer-readable storage medium in alternative embodiments.

Additionally, as used herein, the term ‘circuitry’ refers to (a)hardware-only circuit implementations (e.g., implementations in analogcircuitry and/or digital circuitry); (b) combinations of circuits andcomputer program product(s) comprising software and/or firmwareinstructions stored on one or more computer readable memories that worktogether to cause an apparatus to perform one or more functionsdescribed herein; and (c) circuits, such as, for example, amicroprocessor(s) or a portion of a microprocessor(s), that requiresoftware or firmware for operation even if the software or firmware isnot physically present. This definition of ‘circuitry’ applies to alluses of this term herein, including in any claims. As a further example,as used herein, the term ‘circuitry’ also includes an implementationcomprising one or more processors and/or portion(s) thereof andaccompanying software and/or firmware. As another example, the term‘circuitry’ as used herein also includes, for example, a basebandintegrated circuit or applications processor integrated circuit for amobile phone or a similar integrated circuit in a server, a cellularnetwork device, other network device, and/or other computing device.

FIG. 1, one example embodiment, illustrates a block diagram of a mobileterminal 10 that would benefit from embodiments of the presentinvention. It should be understood, however, that the mobile terminal 10as illustrated and hereinafter described is merely illustrative of onetype of device that may benefit from embodiments of the presentinvention and, therefore, should not be taken to limit the scope ofembodiments of the present invention. As such, although numerous typesof mobile terminals, such as portable digital assistants (PDAs), mobiletelephones, pagers, mobile televisions, gaming devices, laptopcomputers, cameras, tablet computers, touch surfaces, wearable devices,video recorders, audio/video players, radios, electronic books,positioning devices (e.g., global positioning system (GPS) devices), orany combination of the aforementioned, and other types of voice and textcommunications systems, may readily employ embodiments of the presentinvention, other devices including fixed (non-mobile) electronic devicesmay also employ some example embodiments.

The mobile terminal 10 may include an antenna 12 (or multiple antennas)in operable communication with a transmitter 14 and a receiver 16. Themobile terminal 10 may further include an apparatus, such as a processor20, or other processing device (e.g., processor 52 of FIG. 2), whichcontrols the provision of signals to and the receipt of signals from thetransmitter 14 and receiver 16, respectively. The signals may includesignaling information in accordance with the air interface standard ofthe applicable cellular system, and also user speech, received dataand/or user generated data. In this regard, the mobile terminal 10 iscapable of operating with one or more air interface standards,communication protocols, modulation types, and access types. By way ofillustration, the mobile terminal 10 is capable of operating inaccordance with any of a number of first, second, third and/orfourth-generation communication protocols or the like. For example, themobile terminal 10 may be capable of operating in accordance withsecond-generation (2G) wireless communication protocols IS-136 (timedivision multiple access (TDMA)), GSM (global system for mobilecommunication), and IS-95 (code division multiple access (CDMA)), orwith third-generation (3G) wireless communication protocols, such asUniversal Mobile Telecommunications System (UMTS), CDMA2000, widebandCDMA (WCDMA) and time division-synchronous CDMA (TD-SCDMA), with 3.9Gwireless communication protocol such as evolved UMTS Terrestrial RadioAccess Network (E-UTRAN), with fourth-generation (4G) wirelesscommunication protocols (e.g., Long Term Evolution (LTE) or LTE-Advanced(LTE-A) or the like. As an alternative (or additionally), the mobileterminal 10 may be capable of operating in accordance with non-cellularcommunication mechanisms. For example, the mobile terminal 10 may becapable of communication in a wireless local area network (WLAN) orother communication networks.

In some embodiments, the processor 20 may include circuitry desirablefor implementing audio and logic functions of the mobile terminal 10.For example, the processor 20 may be comprised of a digital signalprocessor device, a microprocessor device, and various analog to digitalconverters, digital to analog converters, and other support circuits.Control and signal processing functions of the mobile terminal 10 areallocated between these devices according to their respectivecapabilities. The processor 20 thus may also include the functionalityto convolutionally encode and interleave message and data prior tomodulation and transmission. The processor 20 may additionally includean internal voice coder, and may include an internal data modem.Further, the processor 20 may include functionality to operate one ormore software programs, which may be stored in memory. For example, theprocessor 20 may be capable of operating a connectivity program, such asa conventional Web browser. The connectivity program may then allow themobile terminal 10 to transmit and receive Web content, such aslocation-based content and/or other web page content, according to aWireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP)and/or the like, for example.

The mobile terminal 10 may also comprise a user interface including anoutput device such as a conventional earphone or speaker 24, a ringer22, a microphone 26, a display 28, and a user input interface, all ofwhich are coupled to the processor 20. The user input interface, whichallows the mobile terminal 10 to receive data, may include any of anumber of devices allowing the mobile terminal 10 to receive data, suchas a keypad 30, a touch display (display 28 providing an example of sucha touch display), a microphone 26 or other input device. In embodimentsincluding the keypad 30, the keypad 30 may include the conventionalnumeric (0-9) and related keys (#, *), and other hard and soft keys usedfor operating the mobile terminal 10. Alternatively or additionally, thekeypad 30 may include a conventional QWERTY keypad arrangement. Thekeypad 30 may also include various soft keys with associated functions.In addition, or alternatively, the mobile terminal 10 may include aninterface device such as a joystick or other user input interface. Someembodiments employing a touch display may omit the keypad 30 and any orall of the speaker 24, ringer 22, and microphone 26 entirely. The mobileterminal 10 further includes a battery 34, such as a vibrating batterypack, for powering various circuits that are required to operate themobile terminal 10, as well as optionally providing mechanical vibrationas a detectable output.

The mobile terminal 10 may further include a user identity module (UIM)38. The UIM 38 is typically a memory device having a processor built in.The UIM 38 may include, for example, a subscriber identity module (SIM),a universal integrated circuit card (UICC), a universal subscriberidentity module (USIM), a removable user identity module (R-UIM), etc.The UIM 38 typically stores information elements related to a mobilesubscriber. In addition to the UIM 38, the mobile terminal 10 may beequipped with memory. For example, the mobile terminal 10 may includevolatile memory 40, such as volatile Random Access Memory (RAM)including a cache area for the temporary storage of data. The mobileterminal 10 may also include other non-volatile memory 42, which may beembedded and/or may be removable. The memories may store any of a numberof pieces of information, and data, used by the mobile terminal 10 toimplement the functions of the mobile terminal 10.

An example embodiment of the invention will now be described withreference to FIG. 2, in which certain elements of an apparatus 50 fordisplaying search results and other points of interest on multiplelevels in multi-level maps are depicted. The apparatus 50 of FIG. 2 maybe employed, for example, in conjunction with the mobile terminal 10 ofFIG. 1. However, it should be noted that the apparatus 50 of FIG. 2, mayalso be employed in connection with a variety of other devices, bothmobile and fixed, and therefore, embodiments of the present inventionshould not be limited to application on devices such as the mobileterminal 10 of FIG. 1. For example, the apparatus 50 may be employed ona personal computer or other terminal. Moreover, in some cases, theapparatus 50 may be on a fixed device such as a server or other serviceplatform and the content may be presented (e.g., via a server/clientrelationship) on a remote device, such as a user terminal (e.g., themobile terminal 10) based on processing that occurs at the fixed device.

It should also be noted that while FIG. 2 illustrates one example of aconfiguration of an apparatus 50 for displaying search results and otherpoints of interest on multiple levels in multi-level maps, numerousother configurations may also be used to implement embodiments of thepresent invention. As such, in some embodiments, although devices orelements are shown as being in communication with each other,hereinafter such devices or elements should be considered to be capableof being embodied within a same device or element and thus, devices orelements shown in communication should be understood to alternatively beportions of the same device or element.

Referring now to FIG. 2, the apparatus 50 for displaying search resultsand other points of interest on multiple levels in multi-level maps isprovided and may include or otherwise be in communication with aprocessor 52, a user interface 54, a communication interface 56, and amemory device 58. In some embodiments, the processor 52 (and/orco-processors or any other processing circuitry assisting or otherwiseassociated with the processor 52) may be in communication with thememory device 58 via a bus for passing information among components ofthe apparatus 50. The memory device 58 may include, for example, one ormore volatile and/or non-volatile memories. In other words, for example,the memory device 58 may be an electronic storage device (e.g., acomputer readable storage medium) comprising gates configured to storedata (e.g., bits) that may be retrievable by a machine (e.g., acomputing device like the processor 52). The memory device 58 may beconfigured to store information, data, applications, instructions or thelike for enabling the apparatus to carry out various functions inaccordance with an example embodiment of the present invention. Forexample, the memory device 58 could be configured to buffer input datafor processing by the processor 52. Additionally or alternatively, thememory device 58 could be configured to store instructions for executionby the processor 52.

The apparatus 50 may, in some embodiments, be a mobile terminal (e.g.,mobile terminal 10) or a fixed communication device or computing deviceconfigured to employ an example embodiment of the present invention.However, in some embodiments, the apparatus 50 may be embodied as a chipor chip set. In other words, the apparatus 50 may comprise one or morephysical packages (e.g., chips) including materials, components and/orwires on a structural assembly (e.g., a baseboard). The structuralassembly may provide physical strength, conservation of size, and/orlimitation of electrical interaction for component circuitry includedthereon. The apparatus 50 may therefore, in some cases, be configured toimplement an embodiment of the present invention on a single chip or asa single “system on a chip.” As such, in some cases, a chip or chipsetmay constitute means for performing one or more operations for providingthe functionalities described herein.

The processor 52 may be embodied in a number of different ways. Forexample, the processor 52 may be embodied as one or more of varioushardware processing means such as a co-processor, a microprocessor, acontroller, a digital signal processor (DSP), a processing element withor without an accompanying DSP, or various other processing circuitryincluding integrated circuits such as, for example, an ASIC (applicationspecific integrated circuit), an FPGA (field programmable gate array), amicrocontroller unit (MCU), a hardware accelerator, a special-purposecomputer chip, or the like. As such, in some embodiments, the processor52 may include one or more processing cores configured to performindependently. A multi-core processor may enable multiprocessing withina single physical package. Additionally or alternatively, the processor52 may include one or more processors configured in tandem via the busto enable independent execution of instructions, pipelining and/ormultithreading.

In an example embodiment, the processor 52 may be configured to executeinstructions stored in the memory device 58 or otherwise accessible tothe processor 52. Alternatively or additionally, the processor 52 may beconfigured to execute hard coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor 52 may represent an entity (e.g., physically embodied incircuitry) capable of performing operations according to an embodimentof the present invention while configured accordingly. Thus, forexample, when the processor 52 is embodied as an ASIC, FPGA or the like,the processor 52 may be specifically configured hardware for conductingthe operations described herein. Alternatively, as another example, whenthe processor 52 is embodied as an executor of software instructions,the instructions may specifically configure the processor 52 to performthe algorithms and/or operations described herein when the instructionsare executed. However, in some cases, the processor 52 may be aprocessor of a specific device (e.g., a mobile terminal or othercomputing device), such as processor 20 of mobile terminal 10 of FIG. 1,adapted for employing an embodiment of the present invention by furtherconfiguration of the processor 52 by instructions for performing thealgorithms and/or operations described herein. The processor 52 mayinclude, among other things, a clock, an arithmetic logic unit (ALU) andlogic gates configured to support operation of the processor 52.

Meanwhile, the communication interface 56 may be any means such as adevice or circuitry embodied in either hardware or a combination ofhardware and software that is configured to receive and/or transmit datafrom/to a network and/or any other device or module in communicationwith the apparatus 50. In this regard, the communication interface 56may include, for example, an antenna (or multiple antennas) andsupporting hardware and/or software for enabling communications with awireless communication network. Additionally or alternatively, thecommunication interface 56 may include the circuitry for interactingwith the antenna(s) to cause transmission of signals via the antenna(s)or to handle receipt of signals received via the antenna(s). In someenvironments, the communication interface 56 may alternatively or alsosupport wired communication. As such, for example, the communicationinterface 56 may include a communication modem and/or otherhardware/software for supporting communication via cable, digitalsubscriber line (DSL), universal serial bus (USB) or other mechanisms.

The user interface 54 may be in communication with the processor 52 toreceive an indication of a user input at the user interface 54 and/or tocause provision of an audible, visual, mechanical or other output to theuser. As such, the user interface 54 may include, for example, akeyboard, a mouse, a joystick, a display, a touch screen(s), touchareas, soft keys, a microphone, a speaker, or other input/outputmechanisms. Alternatively or additionally, the processor 52 may compriseuser interface circuitry configured to control at least some functionsof one or more elements of the user interface, such as, for example, aspeaker, ringer, microphone, display, and/or the like. The processor 52and/or user interface circuitry comprising the processor 52 may beconfigured to control one or more functions of one or more elements ofthe user interface through computer program instructions (e.g., softwareand/or firmware) stored on a memory accessible to the processor 52(e.g., memory device 58, and/or the like).

Referring now to FIG. 3, the operations performed by an apparatus 50 inaccordance with one example embodiment of the present invention areshown. In this regard, the apparatus may include means, such as theprocessor 52, the user interface 54, or the like, for causing thedisplay of a multi-level map. According to one embodiment, the apparatusmay include means for causing the display of a multi-dimensional,multi-level map. The multi-dimensional map may include at least atwo-dimensional or a three-dimensional map. Although in one embodiment,the multi-dimensional map may include a two-dimensional map, otherembodiments might include a three-dimensional map. Further, anotherembodiment may include an apparatus configured for causing the displayof a three-dimensional map wherein a primary floor is displayed as afully-opaque floor, while other floors are illustrated as translucentfloors. According to one embodiment, the apparatus may be configured forcausing the display of a three-dimensional map displaying a primaryfloor such that other floors are occluded by the display of the primaryfloor. In this regard, the multi-level map may be displayed upon adisplay, such as display 28 of FIG. 1. In one embodiment, the displayscreen provides a multi-level indoor map, although other types ofmulti-level maps may also be provided in accordance with otherembodiments. As shown in FIGS. 4 and 5, a multi-level indoor map isdisplayed upon a display, and further includes a level selectioninterface. In the illustrated embodiment, the level selection interfaceincludes a displayed level indicator, e.g., Level 0 in FIG. 4 and Level1 in FIG. 5, and level selector icons to receive user input that directsthe display of a different level, such as by transitioning from thedisplay of Level 0 in FIG. 4 to the display of Level 1 in FIG. 5 inresponse to the selection of the up arrow while the map of Level 1 isbeing displayed. Although one example of a level selection interface isshown in FIGS. 4 and 5, other types of level selection interfaces may beincluded in other embodiments, such as a level selection interfacecomprising a drop-down box with a list of selectable levels availablefor display. Although the illustrated embodiments, as shown in FIGS. 4and 5, include a multi-level indoor map of a shopping mall, otherembodiments of the present invention may provide multi-level maps ofother buildings, structures, or the like, such as airports, hospitals,universities, office buildings, or any other physical structure, and/orthe like.

The method, apparatus and computer program product of an exampleembodiment may include a search interface for receiving a search query,such as a query requesting that a particular store, address or otherpoint of interest be located and marked upon the map. By way of example,the display screens of FIGS. 4 and 5 may serve as a user interface thatmay also comprise a search interface, such as a text field forsoliciting a textual search query coupled with a list of search results.As such, the apparatus 50 of FIG. 2 may include means, such as theprocessor 52, the user interface 54, or the like, for receiving an inputindicating at least one search criteria. See operation 110 of FIG. 3. Inthe embodiments illustrated in FIGS. 4 and 5, for example, the userinterface has received an input for searching “shoes” in the text fieldof the search interface. Accordingly, the list of search resultsprovides search result positions related to the search criteria.Further, in another embodiment, the apparatus may be configured toreceive an input indicating a selection of one of the search results. Assuch, the apparatus may be further configured to cause, based at leastin response to a selection of one of the search results, the level ofthe map and the selected search result position indicator to bedisplayed. The search interface may be implemented in other manners,however, and may include a voice command input interface in oneembodiment that is configured to receive a voice input as a searchquery. Additionally, while the search interface may be provided while amap is displayed as shown in FIGS. 4 and 5, the search interface may beprovided and the search query may be input prior to the display of a mapin other embodiments. Although in one embodiment, the apparatus may beconfigured to receive an input indicating a search criteria, such as atext input for a particular item like “shoes,” in another embodiment,the apparatus may be configured to receive an input indicating a searchcriteria, wherein receiving an input indicating a search criteria couldalso include a situation where a user would want the apparatus todisplay points of interest from a previously defined set of points ofinterest, such as a user's favorite category. In addition, searching forpoints of interest may further encompass any method of receiving aninput defining a criteria and determining a position related to thatcriteria.

The apparatus 50 of FIG. 2 may also include means, such as the processor52, the memory 58, the user interface 54, or the like, for determiningat least one search result related to the search criteria and, moreparticularly, for determining the location or position of the searchresult, hereinafter generally termed the search result position. Seeoperation 120 of FIG. 3. In this regard, the apparatus 50 may determinewhether at least one store, shop, point of interest, or the likeappropriately matches the search criteria, as defined by the input tothe text field of the search interface in the illustrated embodiment. Assuch, as shown in FIG. 4, the apparatus may be configured to determine aplurality of search result positions related to “shoe,” the searchcriteria as defined by the input to the text field of the searchinterface.

As previously mentioned, one embodiment of the present invention mayinclude an apparatus 50 configured to display a multi-level map. Theapparatus 50 of FIG. 2 may include means, such as the processor 52, thememory 58, the user interface 54, or the like, for determining arelationship between the at least one search result position and amulti-level map. See operation 130 of FIG. 3. For example, the apparatus50 may be configured to determine whether the at least one search resultposition is located on any level within that portion of the map that isdisplayed. Further, the apparatus 50 may be configured to determine, inan instance in which the search result position is located within thatportion of the map that is displayed, whether the at least one searchresult position is located on the level that is being displayed or onanother level. As shown in FIG. 4 in which a portion of the first levelis shown, the apparatus may be configured to determine whether a searchresult position is located on the first level of the shopping mall andwithin the boundaries of the displayed portion of the map. Further, inregards to FIG. 5 in which a second level is depicted, the apparatus maybe configured to determine whether a search result position is locatedon the second level of the shopping mall and within the boundaries ofthe displayed portion of the map.

As such, an apparatus 50 of FIG. 2 may include means such as theprocessor 52, the memory 58, the user interface 54, or the like, forcausing, based at least in part on the relationship, the at least onesearch result position to be displayed as search result positionindicators, wherein the displayed search result position indicators arepresented in a different manner based at least in part on therelationship of the search result positions to the level that iscurrently being displayed. See operation 140 of FIG. 3. In this regard,the apparatus of one embodiment may cause the search result positionsthat are located within the portion of the map that is being displayedand on the level that is currently being displayed to be presented inone fashion, while presenting the search result positions that arelocated within the portion of the map that is being displayed, but onanother level that is not being displayed to be presented in a differentfashion. For example, the search result positions that are located onthe same level as that being displayed may be depicted in a morenoticeable fashion than the search result positions that are located onother levels. As shown in FIG. 4 in which a map of the first level isdisplayed, for example, those search result positions that aredetermined to be within the portion of the map that is displayed and tobe located on the first level of the shopping mall are displayed asopaque pushpins, while the search result positions that are determinedto be within the portion of the map that is displayed and to be locatedon the second level are displayed as translucent pushpins. Conversely,FIG. 5 depicts a map of the second level and now illustrates the searchresult positions located on the first level as the translucent pushpinsindicting that the search result positions are not located on thedisplayed level of the indoor map (e.g., the second level). AlthoughFIGS. 4 and 5 illustrate the search result position indicators aspushpins, the search result position indicator may comprise any genericvisual indicator that includes, but is not limited to, icons, symbols,pictures, and/or the like.

Further, an apparatus, such as the processor 50, of another embodimentmay be configured to determine whether a search result position islocated on a level that is higher or lower than the current level thatis displayed by the user interface. In this embodiment, the apparatus,such as the processor, may cause the search result positions that arehigher than the current level to be displayed in one manner and thesearch result positions that are lower than the current level to bedisplayed in a different manner, thereby permitting a user to quicklydetermine the relative location of the search result positions withrespect to the current level. Further, the apparatus, such as theprocessor, of one embodiment may be configured to determine thedistance, such as in terms of the number of levels, between the currentlevel that is displayed by the user interface and search resultpositions. As such, the apparatus, such as the processor, of thisembodiment may be configured to cause the search result positions to bedisplayed in a manner that is dependent upon the distance between thesearch result positions and the current level, such as by causing theopacity or transparency to be dependent upon the distance, such that auser can quickly determine whether the search result positions arerelatively close to or far away from the current level.

Referring to FIG. 6, the apparatus may be configured to determine anumber of relationships between the at least one search result positionand a multi-level map. For example, the apparatus 50 may include means,such as a processor 52, a memory 58, a user interface 54, or the likefor determining whether a search result position is located within theboundaries of the map displayed by the user interface. See operation 200of FIG. 6. If the search result position is not within the boundaries ofthe displayed map, the result is not displayed upon the display screen.See operation 210 of FIG. 6. In addition, the apparatus may be furtherconfigured to determine if the search result position is located on thecurrently displayed level when the search result position has beendetermined to be located within the boundaries of the displayed map. Seeoperation 220 of FIG. 6. If the search result position is not located onthe currently displayed level, but is within the boundaries of thedisplayed map, the apparatus may be configured to display the searchresult position as a search result position indicator in a first manner,such as a dimmed, partially translucent icon. See operation 230 of FIG.6. However, if the search result position is located on the currentlydisplayed level and within the boundaries of the displayed map, theapparatus may be configured to display the search result position in adifferent manner, such as a fully opaque, highlighted icon. Seeoperation 240 of FIG. 6.

Although illustrated in the embodiments of FIGS. 4 and 5 as dimmedpartially, translucent icons, a search result position located on adifferent level may be illustrated in different manners from those onthe currently displayed level so as to distinguish those search resultpositions on the currently displayed level from search result positionson other levels, such as by displaying the search result positions witha different size, shape, color, outline, highlight, and/or the like. Forexample, although illustrated as fully opaque, highlighted icons inFIGS. 4 and 5, search result positions located on a currently displayedlevel may be illustrated as an icon with a halo, while search resultpositions on other levels may be illustrated as icons without a halo. Asanother example, an icon reflecting a search result position on adifferent level may be displayed as an icon of one color, whereas iconsindicating a search result position is located on the currentlydisplayed level appear as icons of a different color. For instance, thesearch result position indicator may be displayed as a particular colorwherein each color corresponds to a specific level. As such, theapparatus may display a number of differently colored search resultposition indicators, wherein each search result position indicator maybe readily identified as being located on a particular level by itsrespective color. In another embodiment, the size of the icon may differto indicate the differing distances between search result positionslocated on different levels and the currently displayed level. Forexample, a search result position located one level away from thecurrently displayed level may appear larger on the displayed map than asearch result position located ten levels away from the level currentlydisplayed on the multi-level map. Further still, another embodiment ofthe present invention may include icons of different shapes to indicatewhich level a search result position is located. For instance, a searchresult position indicator may be shaped as a plus sign to indicate thelocation is above the currently displayed level, a minus sign toindicate the location is below the currently displayed level, and acircular pin to indicate the location is on the present level that iscurrently displayed. In another embodiment, each level may correspond toa particular shape such that a search result position located on a firstlevel will be displayed as a search result position indicator having ashape corresponding to the first level, while a search result positionlocated on a second level will be displayed as a search result positionindicator having a shape corresponding to the second level, irrespectiveof which level is being currently displayed. In another embodiment, thesearch result position indicator may be coupled with a level indicator,the level indicator displaying a number, wherein the number correspondsto the level where the search result position is located. According toanother embodiment, the level indicator may display a numbercorresponding to the number of levels away the search result position islocated from the currently displayed level.

Further, the apparatus may be configured to enable interaction with anicon representative of a search result position located on the displayedlevel and disable interaction with an icon representative of a searchresult position located on a different level from the currentlydisplayed level. See operations 241 and 231 of FIG. 6 respectively.According to one embodiment in which the apparatus is configured toenable interaction with the icon representative of a search resultposition located on the displayed level, a user may select an iconrepresentative of a search result position located on the currentlydisplayed level so as to cause a window, bubble, or other graphicalpop-up to appear on the display with information related to the searchresult. The information may comprise details including the physicaladdress, contact information, hours of operation, and/or the like. Inanother embodiment, interaction with the icon representative of a searchresult position located on the displayed level may initiate a requestfor directions to the search result position from a starting location.In contrast to the interaction provided in response to the selection ofan icon representative of a search result position on the displayedlevel, the selection of an icon representative of a search resultposition on another level may not produce any response or at least lessresponse. Although FIG. 6 illustrates interaction with the search resultposition may be enabled only when the search result position is locatedon the currently displayed level, in other embodiments, interaction withsearch result position may be enabled when the search result position islocated within the map boundaries, regardless of whether the searchresult position is located on the currently displayed level or anotherlevel of the multi-level map. For example, interaction with an indicatorof a search result position located on a different level from thecurrently displayed level may comprise opening a window, bubble or othergraphical pop-up to appear on the display with information related tothe search result. The information may comprise details including thephysical address, contact information hours of operation, and/or thelike. In addition, interaction with an indicator of a search resultposition located on a different level from the currently displayed levelmay further comprise causing the apparatus to change the currentlydisplayed level to the different level of the search result position.

As described above, FIGS. 3 and 6 are flowcharts of a method and programproduct according to example embodiments of the invention. It will beunderstood that each block of the flowchart, and combination of blocksin the flowchart, may be implemented by various means, such as hardware,firmware, processor, circuitry and/or other device associated withexecution of software including one or more computer programinstructions. For example, one or more procedures described above may beembodied by computer program instructions. In this regard, the computerprogram instructions which embody the procedures described above may bestored by a memory device of a user terminal (either mobile or fixed)and executed by a processor in the user terminal. As will beappreciated, any such computer program instructions may be loaded onto acomputer or other programmable apparatus (e.g., hardware) to produce amachine, such that the instructions which execute on the computer orother programmable apparatus create means for implementing the functionsspecified in the flowchart block(s). These computer program instructionsmay also be stored in a non-transitory computer-readable memory that maydirect a computer or other programmable apparatus to function in aparticular manner, such that the instructions stored in thecomputer-readable memory produce an article of manufacture whichimplements the functions specified in the flowchart block(s). Thecomputer program instructions may also be loaded onto a computer orother programmable apparatus to produce a computer-implemented processsuch that the instructions which execute on the computer or otherprogrammable apparatus implement the functions specified in theflowchart block(s).

Accordingly, blocks of the flowchart support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions. It will also be understood that oneor more blocks of the flowchart, and combinations of blocks in theflowchart, can be implemented by special purpose hardware-based computersystems which perform the specified functions, or combinations ofspecial purpose hardware and computer instructions.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe some example embodiments in the context of certainexample combinations of elements and/or functions, it should beappreciated that different combinations of elements and/or functions maybe provided by alternative embodiments without departing from the scopeof the appended claims. In this regard, for example, differentcombinations of elements and/or functions than those explicitlydescribed above are also contemplated as may be set forth in some of theappended claims. Although specific terms are employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation.

1. A method comprising: receiving an input indicating a search criteria;determining, by a processor, at least one search result position relatedto the search criteria; determining a relationship between the at leastone search result position and a multi-level map; and causing, based atleast in part on the relationship, a level of the map and the at leastone search result position to be displayed as a search result positionindicator, wherein the displayed search result position indicator ispresented in a different manner based at least in part on whether thesearch result position is on the level of the map that is displayed oris on another level of the map.
 2. A method according to claim 1,wherein causing a level of the map to be displayed further comprisescausing a multi-dimensional map of a portion of a building to bedisplayed.
 3. A method according to claim 2 further comprising receivingan input indicating a selection of a desired level.
 4. A methodaccording to claim 1, wherein causing the at least one search resultposition to be displayed further comprises causing the at least onesearch result position indicator to be displayed in an instance in whichthe at least one search result position is located within the portion ofthe map that is displayed.
 5. A method according to claim 1, whereincausing the at least one search result position to be displayed furthercomprises causing the at least one search result position to bedisplayed as an opaque search result position indicator in an instancein which the search result position is on the level of the map that isdisplayed.
 6. A method according to claim 5, wherein causing the atleast one search result position to be displayed further comprisescausing the search result position to be displayed as a translucentsearch result position indicator in an instance in which the searchresult position is not on the level of the map that is displayed.
 7. Amethod according to claim 1 further comprising enabling interaction withthe at least one search result position indicator.
 8. An apparatuscomprising at least one processor and at least one memory storingcomputer program code, wherein the at least one memory and storedcomputer program code are configured, with the at least one processor,to cause the apparatus to at least: receive an input indicating a searchcriteria; determine at least one search result position related to thesearch criteria; determine a relationship between the at least onesearch result position and a multi-level map; and cause a level of themap and at least one search result position to be displayed as a searchresult position indicator, wherein the displayed search result positionindicator is presented in a different manner based at least in part onwhether the search result position is on the level of the map that isdisplayed or is on another level of the map.
 9. An apparatus accordingto claim 8 wherein the at least one memory including computer programcode is configured to, with the at least one processor, cause theapparatus to cause a multi-dimensional map of a portion of a building tobe displayed.
 10. An apparatus according to claim 9, wherein the atleast one memory including computer program code is configured to, withthe at least one processor, cause the apparatus to receive an inputindicating a selection of a desired level.
 11. An apparatus according toclaim 8, wherein the at least one memory including computer program codeis configured to, with the at least one processor, cause the apparatusto cause the at least one search result position indicator to bedisplayed in an instance in which the at least one search resultposition is located within the portion of the map that is displayed. 12.An apparatus according to claim 8, wherein the at least one memoryincluding computer program code is configured to, with the at least oneprocessor, cause the apparatus to cause the at least one search resultposition to be displayed as an opaque search result position indicatorin an instance in which the search result position is on the level ofthe map that is displayed.
 13. An apparatus according to claim 12,wherein the at least one memory including computer program code isconfigured to, with the at least one processor, cause the apparatus tocause the at least one search result position to be displayed as atranslucent search result position indicator in an instance in which thesearch result position is not on the level of the map that is displayed.14. An apparatus according to claim 8, wherein the at least one memoryincluding computer program code is configured to, with the at least oneprocessor, cause the apparatus to enable interaction with the at leastone search result position indicator.
 15. A computer program productcomprising at least one non-transitory computer-readable storage mediumhaving computer-readable program instructions stored therein, thecomputer-readable program instructions comprising program instructionsconfigured to cause an apparatus to perform a method comprising:receiving an input indicating a search criteria; determining, by aprocessor, at least one search result position related to the searchcriteria; determining a relationship between the at least one searchresult position and a multi-level map; and causing, based at least inpart on the relationship, a level of the map and the at least one searchresult position to be displayed as a search result position indicator,wherein the displayed search result position indicator is presented in adifferent manner based at least in part on whether the search resultposition is on the level of the map that is displayed or is on anotherlevel of the map.
 16. The computer program product of claim 15configured to cause an apparatus to perform a method wherein causing alevel of the map to be displayed further comprises causing amulti-dimensional map of a portion of a building to be displayed. 17.The computer program product of claim 15 configured to cause anapparatus to perform a method wherein causing the at least one searchresult position to be displayed further comprises causing the at leastone search result position indicator to be displayed in an instance inwhich the at least one search result position is located within theportion of the map that is displayed.
 18. The computer program productof claim 15 configured to cause an apparatus to perform a method whereincausing the at least one search result position to be displayed furthercomprises causing the at least one search result position to bedisplayed as an opaque search result position indicator in an instancein which the search result position is on the level of the map that isdisplayed.
 19. The computer program product of claim 18 configured tocause an apparatus to perform a method wherein causing the at least onesearch result position to be displayed further comprises causing the atleast one search result position to be displayed as a translucent searchresult position indicator in an instance in which the search resultposition is not on the level of the map that is displayed.
 20. Thecomputer program product of claim 15 configured to cause an apparatus toperform a method further comprising enabling interaction with the atleast one search result position indicator.